This invention relates to information processing and more particularly to a method for combining a knowledge-based system with an arbitrary relational database system. This invention presumes familiarity with basic relational database systems terminology, including structured query languages used for database queries, and basic knowledge-based systems terminology, including object-oriented programming techniques and terminology used for knowledge processing applications, that is, applications conventionally associated with the field of artificial intelligence (AI). Object-oriented programming is particularly powerful because mere identification of an object implies the behavior of the object, that is, the allowable functions which can be applied to the object.
To aid in an understanding of this invention, a glossary of terms is included hereinbelow.
The advent of knowledge processing has made possible advances in the capabilities of data processing and software engineering. Knowledge processing has been widely accepted in business, industry and engineering as valuable for handling information.
Heretofore, most of the advances provided by knowledge processing have been limited to use of customized systems and sources of information. Numerous custom systems have been built which exchange data between a knowledge processing application and "flat" (without hierarchy) file sources on host computer systems (generally referred to as mainframes and associated storage devices), but no general system has yet been developed. This represents a major limitation to the potential use of knowledge processing. For many years, one of the valued assets in a business was the ability to store and retrieve information. A good example is a set of records of a large insurance company with many policy holders. The requirements of information users impose significant limitations on the accessibility or the nature of the accessibility of that information. Frequently because of the need to access information quickly from very large databases, it was necessary to design and provide database management systems which were optimized for speed of access. The emphasis was then on the ability to manage large amounts of data. The practical result was relatively easy accessibility of information but lack of tools necessary to process large amounts of information and draw inferences from the implications of the information. Knowledge processing technology is potentially a major advance which would enhance the ability to draw inferences and make decisions based on large amounts of data. The primary limitation, however, is the limited accessibility of existing databases by knowledge processing systems.
The problem of integrating a knowledge-based system with a database system has been known for many years. There are three standard methods for integrating a knowledge-based system with a database system. These are:
1. Enhancing an existing knowledge-based system to include database capabilities or the converse: enhancing an existing database system to include knowledge base capabilities;
2. Coupling a knowledge-based system with a database system; and
3. Integrating the technology of a knowledge-based system with the technology of a database system to create a new class of systems.
Of these, the technique of enhancing a system to provide an extension of a database or knowledge-based system is merely a short-term partial solution; in the long term it may never lead to a generally acceptable solution.
Work is being pursued by others to integrate the technologies. For example, reports of such work are found in a publication edited by Michael L. Brodie and John Mylopoulos entitled On Knowledge Base Management Systems, Springer-Verlag New York Inc., 1986. Particular reference is made to Chapter 28 entitled: "The Role of Databases in Knowledge-Based Systems" by M. S. Fox and J. McDermott (pp. 407-430). This chapter describes the current state of the art in coupling technology (method 2) but focuses mostly on the requirements for database techniques in the construction of knowledge-based systems. As such, the work is not directly relevant to the present invention because it deals with the integrating technology (method 3).
The particular field of this invention is an instance of the coupling technology above. It has been found, however, that coupling a knowledge-based system with a database system is extremely difficult unless severe constraints are imposed on the knowledge base or on the database. As a consequence, although custom systems have been provided for coupling a database with a knowledge base, no general system has yet been developed.
Some knowledge-based systems provide communication between a database and a knowledge base via rules, the rules being specific to the application knowledge base. As a consequence, all possible queries that could be asked by the knowledge-based system must be known a priori and coded into the rules. Ad hoc querying of the database is not supported in these types of systems.
Other knowledge-based systems are known for accessing large volumes of data stored in a database. These types of systems often require that the information be stored on the database in a highly stylized format called a schema, which is a form recognizable and accessible by a particular type of query system designed for a specialized knowledge-based system.
Some predicate calculus-based systems provide for coupling a database system to a particular type of knowledge-based system. An example is Quintus Prolog, a language provided by Quintus Computer Systems of Mountain View, Calif. Therein each table of a relational database system can be directly identified with a Prolog functor. The Prolog compiler is operative to convert Prolog goals based on such a functor into a simple database query. It will be observed that the Prolog query is merely a restatement of the database query in Prolog syntax.
A precursor to the present invention is described by R. M. Abarbanel and M. D. Williams entitled "A Relational Representation for Knowledge Bases," presented at the First International Conference on Expert Database Systems, Apr. 1-4, 1986 (sponsored by the Institute of Information Management, Technology and Policy and the University of South Carolina). In this work, ad hoc querying was supported, but the data in the database had to be fully normalized into what is known as the Third Normal Form, and each record in the database had to be provided with a unique identifier. Thus the database was required to adopt a predefined format.
Another precursor to the present invention is KEEMAP, a prototype specialty product which has been licensed by IntelliCorp, Inc., the assignee of the present invention, to third parties on a limited basis. The system is described in work by Raymond E. Carhart, "Installing and Using the KEE/MAPPER Interface," (unpublished 1987). This system represents each database attribute as a unit and supports simple single-variable predicates on those attributes. This is essentially a direct representation of database attributes in a knowledge base so that a knowledge base query is merely a restatement of a database query.